The present invention relates to an image processing method for generating, from three-dimensional image information, two-dimensional image information to be drawn on a two-dimensional screen, such as on a television monitor device, and also relates to a device used therefor, a recording medium having recorded thereon an image processing program, and such image processing program.
There are accelerating trends in higher integration and faster processing speed of processors and memories in recent television game consoles and personal computers, so that an image processing device composed of such a game console or personal computer can generate, from a three-dimensional image, a fine two-dimensional image with real presence in a real-time manner and can display it on two-dimensional monitor screens.
Most current image processing systems generate two-dimensional images according to draw processing on a polygon basis. Reasons why the current image processing systems employ polygon-based draw processing in the generation of two-dimensional images are that polygon data which are expressed on the basis of apexes of polygons are easy to control; that conversion of polygon data to pixel data can be achieved by linear interpolation of apexes onto a draw screen and thus memory access and operations can have locality which is enough to raise the processing speed; and that most of the operations can simply be done by addition if the linear interpolation is performed by using a DDA (digital differential analyzer) so that a sufficiently effective level of real-time drawing can be achieved even with a circuit scale currently available.
Generation processing of two-dimensional images as viewed from the aspect of data type transition is as follows.
First, polygon data on the world coordinate system are subjected to geometry calculations including coordinate conversion, clipping and lighting processing. The polygon data obtained after such geometry calculations are then subjected to projection conversion to be converted into polygon data on screen coordinates. The polygon data on the screen coordinates are subjected to rendering to be converted into pixel data (pixel conversion) on the screen. The pixel data are further converted into screen data to be displayed on a two-dimensional screen. The screen data are sent to a television monitor device and displayed as a two-dimensional image on the two-dimensional screen.
It should now be noted that polygon data have an apex basis, and on the other hand, pixel data have a pixel basis. That is, these two sets of data differ in their units of processing. As a result, conversion of the polygon data into pixel data often causes a delay in the data processing and inefficient operation of calculation circuits. More specifically, rendering is a process directly affected by the area of the polygons, so that pixel conversion for a larger polygon will take a longer process time, and for a smaller polygon a shorter process time. On the contrary, geometry calculation and projection conversion are calculation processes on the apex basis irrespective of the polygon area, so that these calculations take almost the same length of time both for larger polygons and smaller polygons. This means that, for an example in which a larger polygon is drawn first and a smaller polygon comes next, geometry calculation and projection conversion for the smaller polygon are forcibly halted until pixel conversion for the larger polygon by rendering is finished.
The recent mainstream of calculation circuits for rendering is such that a plurality of polygons are generated per one process cycle for a single polygon, where the number of such pixels is fixed depending on the hardware. On the other hand, smaller polygons often come short of the fixed number of pixels even after rendering. An increase in the number of small polygons coming short of the fixed number of pixels will lower the process efficiency of the calculation circuit, and thus decrease the pixel fill rate.
According to these matters, the size of polygons that an image processing system can process on a draw screen in the most efficient manner is almost uniquely decided by the circuit constitution that is used for geometry calculation, setup processing, and rendering processing (pixel conversion), the performance ratio (performance difference) thereof, etc. Conventional image processing systems are configured to draw relatively larger polygons effectively. In other words, conventional image processing systems cannot process polygons effectively other than polygons which have a size for effective processing.
On the other hand, it is supposed that drawing models will become very complicated and that rendering processing will have more variety in the future. If drawing models become very complicated and rendering processing has more variety, it can be predicted that polygons will inevitably become smaller; that the number of small polygons will increase remarkably; and that the number of parameters for the apex of a polygon will increase. Further, according to these results, it can be predicted that the image processing system should lower the pixel fill rate greatly.
As mentioned above, in order to process a large number of small polygons effectively, the image processing system should fix pixel conversion processing and raise throughput of polygons. Further, in order to raise pixel fill rate, the image processing system should draw larger polygons simultaneously. However, it is difficult for conventional image processing systems to perform both high-speed processing for a large number of small polygons and raising of the pixel fill rate at the same time, in order to satisfy the two demands mentioned above. Efforts to satisfy the two demands will make an image processing system have a large number of expensive and large DDAs, which is unpractical in view of cost and circuit scale.